package com.message.rpc;

import com.message.Message;
import com.message.constant.MessageType;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * @author dailinyu
 * @createTime 2022/10/7 15:45
 * @description
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
public class RpcRequestMessage extends Message {

    /**
     * 消息id
     */
    private String messageId;

    /**
     * 调用的接口全限定名，服务端根据它找到实现
     */
    private String serviceName;

    /**
     * 调用接口中的方法名
     */
    private String methodName;

    /**
     * 方法返回类型
     */
    private Class<?> returnType;

    /**
     * 方法参数类型数组
     */
    private Class<?>[] parameterTypes;

    /**
     * 方法参数值数组
     */
    private Object[] parameterValue;

    @Override
    public int getMessageType() {
        return MessageType.RPC_REQUEST_MESSAGE;
    }
}
